package com.friddle.instance;

import java.util.Map;

import org.apache.commons.lang3.tuple.MutablePair;

/**
 * Created by friddle on 15/3/17.
 */
public interface DBIntances {
	/**
	 * <p>
	 * init the instances environments
	 * </p>
	 * 
	 * @param AccessKey
	 *            <p>
	 *            id
	 *            </p>
	 * @param AccessSecret
	 *            <p>
	 *            密钥
	 *            </p>
	 * @param envs
	 *            <p>
	 *            其他参数
	 *            </p>
	 * @return <p>
	 *         返回两个参数：第一个是为是否成功。成功的话，第二个为InstanceID，失败的话为：失败原因
	 *         </p>
	 */
	public MutablePair<Boolean, String> initEnvironment(String AccessKey, String AccessSecret, Map<String, String> envs);

	/**
	 * <p>
	 * 创建机器
	 * </p>
	 * 
	 * @param type
	 *            <p>
	 *            机器的类别
	 *            </p>
	 * @param envs
	 *            <p>
	 *            机器的参数配置
	 *            </p>
	 * @return <p>
	 *         返回两个参数：第一个是为是否成功。成功的话，第二个为InstanceID，失败的话为：失败原因
	 *         </p>
	 */
	public MutablePair<Boolean, String> createDatabase(String databasename, String id, String owern, Map<String, String> envs);

	public MutablePair<Boolean, String> createRdsInstance(String type, Map<String, String> envs);

	/**
	 * <p>
	 * 删除机器
	 * </p>
	 * 
	 * @param instanceid
	 *            <p>
	 *            机器的id
	 *            </p>
	 * @return <p>
	 *         返回两个参数：第一个是为是否成功。成功的话，第二个为InstanceID，失败的话为：失败原因
	 *         </p>
	 */
	public MutablePair<Boolean, String> deleteInstances(String instanceid);

}
